{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## RUL prediction using boosting\n",
    "\n",
    "In this notebook, we will apply boosting to predict RUL of NASA's turbofan engine dataset FD003. To implement boosting, we will use [XGBoost](https://xgboost.readthedocs.io/en/latest/index.html) library."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import xgboost as xgb\n",
    "\n",
    "from sklearn.metrics import mean_squared_error\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(983)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Numpy version:  1.18.5\n",
      "Pandas version:  1.0.5\n",
      "XGBoost version:  1.2.0\n"
     ]
    }
   ],
   "source": [
    "print(\"Numpy version: \", np.__version__)\n",
    "print(\"Pandas version: \", pd.__version__)\n",
    "print(\"XGBoost version: \", xgb.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data Preprocessing\n",
    "\n",
    "We strongly encourage readers to go through the [dataset description and prreprocessing notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_data_description_and_preprocessing.ipynb). In that notebook we have explained how data preprocessing functions work with simple examples. In this notebook we will only use those functions. So prior familiarity with these functions is an advantage. Below are the parameters that we will use for data preprocessing:\n",
    "\n",
    "* Degradation model: Linear\n",
    "* Early RUL: None\n",
    "* Window length: 1\n",
    "* Shift: 1\n",
    "* Data scaling: No (Tree based methods don't require data scaling)\n",
    "\n",
    "We will calculate two prediction scores on test data. In one case, we will take last 5 examples of test data for engine, calculate their predictions, and finally average those for each engine. In the second case, we will take only the last example of each engine and make predictions. The logic behind taking last 5 examples and averaging their predictions is to make the prediction robust against outliers. Due to some external factor, if our last example happens to be corrupted, its prediction outcome might be far off from the actual one. But if we average predictions from last 5 examples, we will get a more conservative estimate. \n",
    "\n",
    "In the following cell we will show boxplots of each column of training data. That will give us an idea about the values in different columns. If all the values in a column are constant, we drop those columns from our analysis.\n",
    "\n",
    "Readers can download the data from [here](https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/#turbofan). In the following cells, wherever data are read from a folder, readers should change the string to point to the respective folder from their system to run this notebook seamlessly."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x1512 with 21 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/train_FD003.txt\", sep= \"\\s+\", header = None)\n",
    "plt.figure(figsize = (16, 21))\n",
    "for i in range(21):\n",
    "    temp_data = train_data.iloc[:,i+5]\n",
    "    plt.subplot(7,3,i+1)\n",
    "    plt.boxplot(temp_data)\n",
    "plt.show()\n",
    "\n",
    "def process_targets(data_length, early_rul = None):\n",
    "    \"\"\" \n",
    "    Takes datalength and earlyrul as input and \n",
    "    creates target rul.\n",
    "    \"\"\"\n",
    "    if early_rul == None:\n",
    "        return np.arange(data_length-1, -1, -1)\n",
    "    else:\n",
    "        early_rul_duration = data_length - early_rul\n",
    "        if early_rul_duration <= 0:\n",
    "            return np.arange(data_length-1, -1, -1)\n",
    "        else:\n",
    "            return np.append(early_rul*np.ones(shape = (early_rul_duration,)), np.arange(early_rul-1, -1, -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_input_data_with_targets(input_data, target_data = None, window_length = 1, shift = 1):\n",
    "    \"\"\"Depending on values of window_length and shift, this function generates batchs of data and targets \n",
    "    from input_data and target_data.\n",
    "    \n",
    "    Number of batches = np.floor((len(input_data) - window_length)/shift) + 1\n",
    "    \n",
    "    **We don't check input dimensions uisng exception handling. So readers should be careful while using these\n",
    "    functions. If input data are not of desired dimension, either error occurs or something undesirable is \n",
    "    produced as output.**\n",
    "    \n",
    "    Arguments:\n",
    "        input_data: input data to function (Must be 2 dimensional)\n",
    "        target_data: input rul values (Must be 1D array)s\n",
    "        window_length: window length of data\n",
    "        shift: Distance by which the window moves for next batch. This is closely related to overlap\n",
    "               between data. For example, if window length is 30 and shift is 1, there is an overlap of \n",
    "               29 data points between two consecutive batches.\n",
    "        \n",
    "    \"\"\"\n",
    "    num_batches = np.int(np.floor((len(input_data) - window_length)/shift)) + 1\n",
    "    num_features = input_data.shape[1]\n",
    "    output_data = np.repeat(np.nan, repeats = num_batches * window_length * num_features).reshape(num_batches, window_length,\n",
    "                                                                                                  num_features)\n",
    "    if target_data is None:\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "        return output_data\n",
    "    else:\n",
    "        output_targets = np.repeat(np.nan, repeats = num_batches)\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "            output_targets[batch] = target_data[(shift*batch + (window_length-1))]\n",
    "        return output_data, output_targets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_test_data(test_data_for_an_engine, window_length, shift, num_test_windows = 1):\n",
    "    \"\"\" This function takes test data for an engine as first input. The next two inputs\n",
    "    window_length and shift are same as other functins. \n",
    "    \n",
    "    Finally it takes num_test_windows as the last input. num_test_windows sets how many examplles we\n",
    "    want from test data (from last). By default it extracts only the last example.\n",
    "    \n",
    "    The function return last examples and number of last examples (a scaler) as output. \n",
    "    We need the second output later. If we are extracting more than 1 last examples, we have to \n",
    "    average their prediction results. The second scaler halps us do just that.\n",
    "    \"\"\"\n",
    "    max_num_test_batches = np.int(np.floor((len(test_data_for_an_engine) - window_length)/shift)) + 1\n",
    "    if max_num_test_batches < num_test_windows:\n",
    "        required_len = (max_num_test_batches -1)* shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, max_num_test_batches\n",
    "    else:\n",
    "        required_len = (num_test_windows - 1) * shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, num_test_windows"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed trianing data shape:  (24720, 1, 15)\n",
      "Processed training ruls shape:  (24720,)\n",
      "Processed test data shape:  (500, 1, 15)\n",
      "True RUL shape:  (100,)\n"
     ]
    }
   ],
   "source": [
    "test_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/test_FD003.txt\", sep = \"\\s+\", header = None)\n",
    "true_rul = pd.read_csv('/home/biswajit/data/cmapss_data/RUL_FD003.txt', sep = '\\s+', header = None)\n",
    "\n",
    "window_length = 1\n",
    "shift = 1\n",
    "early_rul = None            \n",
    "processed_train_data = []\n",
    "processed_train_targets = []\n",
    "\n",
    "# How many test windows to take for each engine. If set to 1 (this is the default), only last window of test data for \n",
    "# each engine is taken. If set to a different number, that many windows from last are taken. \n",
    "# Final output is the average of output of all windows.\n",
    "num_test_windows = 5     \n",
    "processed_test_data = []\n",
    "num_test_windows_list = []\n",
    "\n",
    "columns_to_be_dropped = [0,1,2,3,4,5,9,14,20,22,23]\n",
    "\n",
    "num_machines = np.min([len(train_data[0].unique()), len(test_data[0].unique())])\n",
    "\n",
    "for i in np.arange(1, num_machines + 1):\n",
    "    \n",
    "    temp_train_data = train_data[train_data[0] == i].drop(columns=columns_to_be_dropped).values\n",
    "    temp_test_data = test_data[test_data[0] == i].drop(columns=columns_to_be_dropped).values\n",
    "    \n",
    "    # Verify if data of given window length can be extracted from both training and test data\n",
    "    if (len(temp_test_data) < window_length):\n",
    "        print(\"Test engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    elif (len(temp_train_data) < window_length):\n",
    "        print(\"Train engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    \n",
    "    temp_train_targets = process_targets(data_length = temp_train_data.shape[0], early_rul = early_rul)\n",
    "    data_for_a_machine, targets_for_a_machine = process_input_data_with_targets(temp_train_data, temp_train_targets, \n",
    "                                                                                window_length = window_length, shift = shift)\n",
    "    \n",
    "    # Prepare test data\n",
    "    test_data_for_an_engine, num_windows = process_test_data(temp_test_data, window_length = window_length, shift = shift,\n",
    "                                                             num_test_windows = num_test_windows)\n",
    "    \n",
    "    processed_train_data.append(data_for_a_machine)\n",
    "    processed_train_targets.append(targets_for_a_machine)\n",
    "    \n",
    "    processed_test_data.append(test_data_for_an_engine)\n",
    "    num_test_windows_list.append(num_windows)\n",
    "\n",
    "processed_train_data = np.concatenate(processed_train_data)\n",
    "processed_train_targets = np.concatenate(processed_train_targets)\n",
    "processed_test_data = np.concatenate(processed_test_data)\n",
    "true_rul = true_rul[0].values\n",
    "\n",
    "# Shuffle data\n",
    "index = np.random.permutation(len(processed_train_targets))\n",
    "processed_train_data, processed_train_targets = processed_train_data[index], processed_train_targets[index]\n",
    "\n",
    "print(\"Processed trianing data shape: \", processed_train_data.shape)\n",
    "print(\"Processed training ruls shape: \", processed_train_targets.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "print(\"True RUL shape: \", true_rul.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed train data shape:  (24720, 15)\n",
      "Processed test data shape:  (500, 15)\n"
     ]
    }
   ],
   "source": [
    "processed_train_data = processed_train_data.reshape(-1, processed_train_data.shape[2])\n",
    "processed_test_data = processed_test_data.reshape(-1, processed_test_data.shape[2])\n",
    "print(\"Processed train data shape: \", processed_train_data.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "\n",
    "dtrain = xgb.DMatrix(processed_train_data, label = processed_train_targets)\n",
    "dtest = xgb.DMatrix(processed_test_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tTrain-rmse:65.04383\n",
      "[50]\tTrain-rmse:53.18308\n",
      "[100]\tTrain-rmse:49.92238\n",
      "[150]\tTrain-rmse:47.59803\n",
      "[200]\tTrain-rmse:45.31795\n",
      "[250]\tTrain-rmse:43.52437\n",
      "[300]\tTrain-rmse:41.77406\n",
      "[350]\tTrain-rmse:40.13785\n",
      "[400]\tTrain-rmse:38.74412\n",
      "[450]\tTrain-rmse:37.29040\n",
      "[499]\tTrain-rmse:36.06504\n"
     ]
    }
   ],
   "source": [
    "num_rounds = 500\n",
    "params = {\"max_depth\":3, \"learning_rate\":1, \"objective\":\"reg:squarederror\"}\n",
    "bst = xgb.train(params, dtrain, num_boost_round = num_rounds, evals = [(dtrain, \"Train\")], verbose_eval = 50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE:  48.48726960856917\n"
     ]
    }
   ],
   "source": [
    "rul_pred = bst.predict(dtest)\n",
    "\n",
    "# First split predictions according to number of windows of each engine\n",
    "preds_for_each_engine = np.split(rul_pred, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                             for ruls_for_each_engine, num_windows in zip(preds_for_each_engine, num_test_windows_list)]\n",
    "RMSE = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine))\n",
    "print(\"RMSE: \", RMSE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With somewhat arbitrary choice of hyperparameters, we obtained an RMSE value of 48.48. But can we do better? To find out better values of hyperparameters, we can do a principled hyperparameter tuning. There are different ways to do hyperparameter search. Here, we will use simple grid search. \n",
    "\n",
    "In grid search, we first define a grid of parameters. Then for each set of parameters, we will fit a 10 xgboost models (as it is 10 fold cross validation). Finally we will average the result of all folds for a particular parameter choice. The parameter choice that gives best score for cross validation is chosen as the best hyperparameter.\n",
    "\n",
    "Grid search of hyperparameters (with cross validation) is computationally intensive. It might take a long time on a personal computer. If that is the case, readers are advised to comment the next cell and directly use the best hyperparameter values as done in subsequent cells."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "max_depth: 2, eta: 0.01\n",
      "RMSE: 59.1461853 in 500 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.1\n",
      "RMSE: 56.83812820000001 in 455 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.3\n",
      "RMSE: 56.8100593 in 233 rounds\n",
      "\n",
      "max_depth: 2, eta: 0.5\n",
      "RMSE: 57.224615500000006 in 97 rounds\n",
      "\n",
      "max_depth: 2, eta: 1.0\n",
      "RMSE: 58.337023099999996 in 29 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.01\n",
      "RMSE: 57.557504800000004 in 500 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.1\n",
      "RMSE: 56.389996 in 248 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.3\n",
      "RMSE: 56.6447628 in 108 rounds\n",
      "\n",
      "max_depth: 3, eta: 0.5\n",
      "RMSE: 57.259652700000004 in 53 rounds\n",
      "\n",
      "max_depth: 3, eta: 1.0\n",
      "RMSE: 58.7807008 in 25 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.01\n",
      "RMSE: 56.7447411 in 500 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.1\n",
      "RMSE: 56.2494594 in 146 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.3\n",
      "RMSE: 56.770954100000004 in 33 rounds\n",
      "\n",
      "max_depth: 4, eta: 0.5\n",
      "RMSE: 57.273131099999986 in 30 rounds\n",
      "\n",
      "max_depth: 4, eta: 1.0\n",
      "RMSE: 58.6092319 in 9 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.01\n",
      "RMSE: 56.2812667 in 500 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.1\n",
      "RMSE: 56.2330283 in 91 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.3\n",
      "RMSE: 56.7526105 in 30 rounds\n",
      "\n",
      "max_depth: 5, eta: 0.5\n",
      "RMSE: 57.333547599999996 in 18 rounds\n",
      "\n",
      "max_depth: 5, eta: 1.0\n",
      "RMSE: 59.114697 in 5 rounds\n",
      "\n",
      "Best parameters are: Max_depth= 5, eta= 0.1, num_rounds = 91. Corresponding RMSE: 56.2330283\n"
     ]
    }
   ],
   "source": [
    "param_grid = [(max_depth, eta) for max_depth in np.arange(2,6) for eta in np.array([0.01, 0.1, 0.3, 0.5, 1])]\n",
    "\n",
    "min_rmse = np.inf\n",
    "best_params = None\n",
    "params = dict()\n",
    "params[\"objective\"] = \"reg:squarederror\"\n",
    "for max_depth, eta in param_grid:\n",
    "    print(\"max_depth: {}, eta: {}\".format(max_depth, eta))\n",
    "    \n",
    "    params[\"max_depth\"] = max_depth\n",
    "    params[\"eta\"] = eta\n",
    "    \n",
    "    cv_res = xgb.cv(params, dtrain, num_boost_round= num_rounds, early_stopping_rounds= 10, nfold = 10, seed = 43)\n",
    "    \n",
    "    best_rmse_val = cv_res[\"test-rmse-mean\"].min()\n",
    "    best_num_rounds = cv_res[\"test-rmse-mean\"].argmin() + 1\n",
    "    \n",
    "    print(\"RMSE: {} in {} rounds\".format(best_rmse_val, best_num_rounds))\n",
    "    print()\n",
    "    \n",
    "    if best_rmse_val < min_rmse:\n",
    "        min_rmse = best_rmse_val\n",
    "        best_params = (max_depth, eta, best_num_rounds)\n",
    "        \n",
    "print(\"Best parameters are: Max_depth= {}, eta= {}, num_rounds = {}. Corresponding RMSE: {}\".format(best_params[0],\n",
    "                                                                                                    best_params[1],\n",
    "                                                                                                    best_params[2],\n",
    "                                                                                                    min_rmse))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will use the best parameters to train the final regressor. The `num_boost_round` value obtained above is the best value for cross validation. We can take a value that is different from the above number but not very far from it. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE after hyperparameter tuning:  47.94765853845549\n"
     ]
    }
   ],
   "source": [
    "params_tuned = {\"max_depth\":5, \"eta\":0.1, \"objective\":\"reg:squarederror\"}\n",
    "bst_tuned = xgb.train(params_tuned, dtrain, num_boost_round= 200)\n",
    "\n",
    "rul_pred_tuned = bst_tuned.predict(dtest)\n",
    "\n",
    "preds_for_each_engine_tuned = np.split(rul_pred_tuned, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine_tuned = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                                   for ruls_for_each_engine, num_windows in zip(preds_for_each_engine_tuned,\n",
    "                                                                                num_test_windows_list)]\n",
    "RMSE_tuned = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine_tuned))\n",
    "print(\"RMSE after hyperparameter tuning: \", RMSE_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Downside of having access to full test set\n",
    "\n",
    "If we have access to full test set, to improve our score on test set, we can tune our algorithm so that it performs well on test set. **However, it should be noted that this is not the right way to train an algorithm.** Test set should be used only once (after model fine tuning) to predict our algorithm's generalization performance. **Test set should never be used to tune hyperparameters of our model.** If we tune our algorithm using test set, it might predict well on that set but there is no guarantee that it will generalize well for yet unseen data. \n",
    "\n",
    "To demonstrate the effect, in the cell below we have used some hyperparameters that gives considerably better results than that obtained by cross validation. How did I find those hyperparameters? As the full test set was available, I tried a few parameters using full test set and chose one that gave relatively better result. **I repeat this is just a hack (a poor one) to improve performance using test set.**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE after hyperparameter tuning:  22.88913933379528\n"
     ]
    }
   ],
   "source": [
    "params_tuned = {\"max_depth\":4, \"eta\":0.01, \"objective\":\"reg:squarederror\"}\n",
    "bst_tuned = xgb.train(params_tuned, dtrain, num_boost_round= 100)\n",
    "\n",
    "rul_pred_tuned = bst_tuned.predict(dtest)\n",
    "\n",
    "preds_for_each_engine_tuned = np.split(rul_pred_tuned, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine_tuned = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                                   for ruls_for_each_engine, num_windows in zip(preds_for_each_engine_tuned,\n",
    "                                                                                num_test_windows_list)]\n",
    "RMSE_tuned = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine_tuned))\n",
    "print(\"RMSE after hyperparameter tuning: \", RMSE_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note that while prediction, we are predicting RUL values for last 5 examples of every engine. Then we take mean of all 5 predictions for each engine and calculate final RMSE.\n",
    "\n",
    "If instead we wish to take only the last example of every engine to make predictions and calculate RUL, we can do so by taking the last prediction of every engine as calculated before and calcutate RMSE as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  4,   9,  14,  19,  24,  29,  34,  39,  44,  49,  54,  59,  64,\n",
       "        69,  74,  79,  84,  89,  94,  99, 104, 109, 114, 119, 124, 129,\n",
       "       134, 139, 144, 149, 154, 159, 164, 169, 174, 179, 184, 189, 194,\n",
       "       199, 204, 209, 214, 219, 224, 229, 234, 239, 244, 249, 254, 259,\n",
       "       264, 269, 274, 279, 284, 289, 294, 299, 304, 309, 314, 319, 324,\n",
       "       329, 334, 339, 344, 349, 354, 359, 364, 369, 374, 379, 384, 389,\n",
       "       394, 399, 404, 409, 414, 419, 424, 429, 434, 439, 444, 449, 454,\n",
       "       459, 464, 469, 474, 479, 484, 489, 494, 499])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "indices_of_last_examples = np.cumsum(num_test_windows_list) - 1\n",
    "indices_of_last_examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE (Taking only last examples):  23.06931257896757\n"
     ]
    }
   ],
   "source": [
    "preds_for_last_example = np.concatenate(preds_for_each_engine_tuned)[indices_of_last_examples]\n",
    "\n",
    "RMSE_new = np.sqrt(mean_squared_error(true_rul, preds_for_last_example))\n",
    "print(\"RMSE (Taking only last examples): \", RMSE_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you are not convinced by above calculations, take a look at the last section of [this notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_FD001_xgboost_piecewise_linear_degradation_model.ipynb)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For CMAPSS data, along with RMSE another metric (S-score) is usually reported in literature. S-score is defined as:\n",
    "\n",
    "$$S= \\sum_{i=1}^N{s_i}$$\n",
    "\n",
    "where, \n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "    s_i=\n",
    "    \\begin{cases}\n",
    "      (e^{-\\frac{d_i}{13}})-1, & \\text{for}\\ d_i < 1 \\\\\n",
    "      (e^{\\frac{d_i}{10}})-1, & \\text{for}\\ d_i \\geq 1\\\\\n",
    "    \\end{cases}\n",
    "  \\end{equation}\n",
    "  $$\n",
    "  \n",
    "We can compute the S-metric as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_s_score(rul_true, rul_pred):\n",
    "    \"\"\"\n",
    "    Both rul_true and rul_pred should be 1D numpy arrays.\n",
    "    \"\"\"\n",
    "    diff = rul_pred - rul_true\n",
    "    return np.sum(np.where(diff < 0, np.exp(-diff/13)-1, np.exp(diff/10)-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "S-score:  2232.5292652111552\n"
     ]
    }
   ],
   "source": [
    "s_score = compute_s_score(true_rul, preds_for_last_example)\n",
    "print(\"S-score: \", s_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot true and predicted RUL values\n",
    "plt.plot(true_rul, label = \"True RUL\", color = \"red\")\n",
    "plt.plot(preds_for_last_example, label = \"Pred RUL\", color = \"blue\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also plot variable importance score."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:title={'center':'Feature importance'}, xlabel='F score', ylabel='Features'>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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zg/RH4Pyhy/qY6hs/typ5wJgZjRu3BiAgoICCgoKMDNOPfXUMvedMWMGF110EcuWLatc6DLU+KUhM5sJdAL+AvzMD7ZIawSoXZqIpIz9+/eTmZnJCSecwODBg+nTp0+Zj928eTMvvPAC119/fbXnqPEzAne/zsyGAgPdfaeZjQCmACcA55a1n5n9K/CvAC1atOSOXoU1kjcZWh0X+9dElEV9DMofvqiPobL5s7OzD7k/ffp08vLyuP322+nevTsdO3YEYp8hvPXWWzRr1gyAu+66i0svvZQ33niDzz//nHXr1tGiRYsqjwNC6llsZrnA6e6+M25df+AOd/9xRfu369TZ61xyXxITJtcvehUybU0kewIVi/oYlD98UR9DZfMXXRoqafLkyTRs2JAJEyYA0KFDB5YvX178Zt+xY0eK3q937txJw4YNmTVrFhdccEFCxzWzFe5+eqkb3b3Gb0Au0KKU9f8obX3JW9euXT3KlixZEnaEKov6GJQ/fFEfQ1Xzb9++3b/66it3d//nP//p/fr18z//+c/F29u3b+87duwodd+rr77a58+ff0THA5Z7Ge+poX591Mw6m5kFy72BBsAXYWYSEakJW7duZeDAgWRkZHDGGWcwePBghg0bxv33389JJ53Epk2byMjIYMyYMUnPEvZ52UXAVWZWAOwBLg0ql4jIUS0jI4P333//sPXjxo1j3Lhx5e47Z86cas0SSiFw9w7B4j3BTUREQqJfFouIpDgVAhGRFKdCICKS4lQIRERSnAqBiEiKUyEQEUlxKgQiIilOhUBEImXjxo0MHDiQnj17kp6ezn33HZx3bMaMGXTv3p309HRuvfVWAN577z0yMzPJzMzklFNO4YUXXggreq0VdmOadsBHcVl6AC3d/cswcolI7VevXj2mTZtG7969+eabbzjttNMYPHgw27ZtY8GCBaxatYoGDRqwfft2AE4++WSWL19OvXr12Lp1K6eccgrnnXce9eqFPbFC7RFqYxp331S0wszOA25OpAioMU34oj4G5Q9fZcaQO/Vc0tLSSEtLA6BJkyb06NGDzZs389BDDzFp0iQaNGgAwAknnABAw4YNi/f/9ttvCaY3kzihNqYxs5vjNv0UeLKm84hIdOXm5vL+++/Tp08fNmzYwJtvvkmfPn0YMGDAIV283n33XdLT0+nVqxczZ87U2UAJtaIf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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xgb.plot_importance(bst_tuned)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As a final note remember that hyperparameter tuning is more of an art than science. It is possible to obtain better results than what has been obtained here by choosing better set of hyperparameters.\n",
    "\n",
    "For other reproducible results on RUL, interested readers can visit my [project page](https://biswajitsahoo1111.github.io/rul_codes_open). "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tf_cpu_23",
   "language": "python",
   "name": "tf_cpu_23"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
